Gravia provisioning works similar to Karaf or Eclipse feature provisioning, but without OSGi.
A feature is defined as set of abstract Resources with associated Capabilities/Requirements. All known features are stored in a Repository. At runtime the Provisioner gets a set of Resource candidates from the Repository and uses a Resolver to find a consistent wiring solution for the current state of the Environment. After this no-impact analysis, the Provisioner installs the required set of Resources to the Environment.
WildFly Camel uses Gravia Provisioning to install Camel features for camel-jms, camel-jmx, camel-cxf into WildFly on demand. It is expected that the list of installable components/features will grow. Using Gravia, modules can be added on demand and it won't be necessary to add the complete set of possible modules to WildFly upfront and (perhaps more importantly) hard-wire them together.
Gravia should provide the necessary functionality to build complex product distributions. Teams can work independently on their respective components and express them as Resources that have associated Capabilities/Requirements. The build process would use the Gravia Provisioner to find a complete and consistent wiring solution for the set of components that make up the final product distribution. It is like Eclipse or Karaf feature provisioning at build time.
The Gravia Repository may be visible to the organisation or even product only. Repository metadata would be versioned to guarantee reproducible build results. Maven plugins could be provided that generate Gravia metadata from build information (i.e. direct maven dependencies) and populate the repository. This is similar to the maven bundle plugin and the OBR metadata it can generate.
Applications that have the notion of plugins (i.e. 3rd party provided component) that can be installed/updated/removed at runtime could use Gravia to provide that functionality. Eclipse and Karaf are both tied to OSGi. Gravia targets environments that do not (want to) have a dependency on OSGi.